﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GoogleSchemeTileLoader
{
   public  class Scheme
    {
        private int level;
        private double resolution;
        private double scale;

        public int Level { get => level; set => level = value; }
        public double Resolution { get => resolution; set => resolution = value; }
        public double Scale { get => scale; set => scale = value; }

        public Scheme(int level, double resolution, double scale)
        {
            this.level = level;
            this.resolution = resolution;
            this.scale = scale;
        }
        public static List<Scheme> getGoogleScheme()
        {
            List<Scheme> schemes = new List<Scheme>();
            Scheme scheme0 = new Scheme(0, 156543.03390625, 559082263.9508929);
            Scheme scheme1 = new Scheme(1, 78271.516953125, 279541131.97544646);
            Scheme scheme2 = new Scheme(2, 39135.7584765625, 139770565.98772323);
            Scheme scheme3 = new Scheme(3, 19567.87923828125, 69885282.99386162);
            Scheme scheme4 = new Scheme(4, 9783.939619140625, 34942641.49693081);
            Scheme scheme5 = new Scheme(5, 4891.9698095703125, 17471320.748465404);
            Scheme scheme6 = new Scheme(6, 2445.9849047851562, 8735660.374232702);
            Scheme scheme7 = new Scheme(7, 1222.9924523925781, 4367830.187116351);
            Scheme scheme8 = new Scheme(8, 611.4962261962891, 2183915.0935581755);
            Scheme scheme9 = new Scheme(9, 305.74811309814453, 1091957.5467790877);
            Scheme scheme10 = new Scheme(10, 152.87405654907226, 545978.7733895439);
            Scheme scheme11 = new Scheme(11, 76.43702827453613, 272989.38669477194);
            Scheme scheme12 = new Scheme(12, 38.218514137268066, 136494.69334738597);
            Scheme scheme13 = new Scheme(13, 19.109257068634033, 68247.34667369298);
            Scheme scheme14 = new Scheme(14, 9.554628534317017, 34123.67333684649);
            Scheme scheme15 = new Scheme(15, 4.777314267158508, 17061.836668423246);
            Scheme scheme16 = new Scheme(16, 2.388657133579254, 8530.918334211623);
            Scheme scheme17 = new Scheme(17, 1.194328566789627, 4265.4591671058115);
            Scheme scheme18 = new Scheme(18, 0.5971642833948135, 2132.7295835529058);
            Scheme scheme19 = new Scheme(19, 0.2985821416974068, 1066.3647917764529);
            Scheme scheme20 = new Scheme(20, 0.1492910708487034, 533.1823958882264);
            schemes.Add(scheme0);
            schemes.Add(scheme1);
            schemes.Add(scheme2);
            schemes.Add(scheme3);
            schemes.Add(scheme4);
            schemes.Add(scheme5);
            schemes.Add(scheme6);
            schemes.Add(scheme7);
            schemes.Add(scheme8);
            schemes.Add(scheme9);
            schemes.Add(scheme10);
            schemes.Add(scheme11);
            schemes.Add(scheme12);
            schemes.Add(scheme13);
            schemes.Add(scheme14);
            schemes.Add(scheme15);
            schemes.Add(scheme16);
            schemes.Add(scheme17);
            schemes.Add(scheme18);
            schemes.Add(scheme19);
            schemes.Add(scheme20);
            return schemes;

        }
       
    }
}
